<?php

header("Content-Type: text/html;charset=utf-8");

$url="http://api.baifupass.com/topay/bftpay/getcode";


$signKey="679af17d4fcdaf230f11693a78469bc7";//签名包key找入网后管理员获取

$arr['appid']="d650580b";//appid//找管理员
$arr['trxType']="WX_SCANCODE_JSAPI";//支付形态 微信扫码  WX_SCANCODE  微信收银台  WX_SCANCODE_JSAPI 阿里扫码  Alipay_SCANCODE   阿里收银台 Alipay_SCANCODE_JSAPI
$arr['amount']="12";//单位元 个位与十位不能相同不能为0 比如 10 11 都不行
$arr['down_trade_no']=time();//订单号
$arr['goodsname']="无";//备注
$arr['backurl']="http://18*****8/test.php";//回调地址

$str=TosignHttp($arr);
echo $str;
$sign=EnTosignHP($str,$signKey);
//echo $str;
$arr['sign']=$sign;//签名
pr($arr);
//exit;
$t=http_request_json($url,$arr);
pr($t);
exit;



/**/
/* 
$url="http://api.baifupass.com/topay/bftpay/getPaylist";//查询订单


$arr['appid']="d650580b";//APPID 找管理员
$arr['trxType']="Querylist";//固定
$arr['orderNumber']="1498729444";//下游提交订单号
$str=TosignHttp($arr);
$sign=EnTosignHP($str,$signKey);

$arr['sign']=$sign;//签名
$rs=http_request_json($url,$arr);
pr($arr);
*/
unset($rs[result][sign]);
foreach($rs[result] as $key=>$val)//验签后在使用数据 确保上游回调
{
	$str=TosignHttp($rs[result]);
	$sign=EnTosignHP($str,$signKey);
	
}
//echo $sign;
//exit;


function http_request_json($url,$post_data){    
   
 	$ch = curl_init();//打开
	$Pt=http_build_query($post_data);
	echo $Pt;
//	exit;
	//exit;
	curl_setopt($ch, CURLOPT_POST, true);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POSTFIELDS,$Pt);
	//echo $post_data;
	//exit;
	$response  = curl_exec($ch);
	curl_close($ch);//关闭
	//pr($response);
	//ECHO $response;
	$result = json_decode($response,true);
     return $result;    
}

function pr($rs)
{
	echo "<pre>";
	print_r($rs);
	echo "</pre>";


}


 
 /**
 * 数组批量转编码 协议使用
 * @param string $encrypted 解密内容
 * @return array 数组类型的返回结果
 */
function ArrEncode($arr)
{ 
	
foreach($arr as $k=>$v){ 
if(is_array($v)){ 
	$arr[$k] =ArrEncode($v); 
	}else{ 
		if (is_numeric($k))
		{
			unset($arr[$k]);
		}else 
		{	
				$arr[$k]=urlencode($v); 
				
			
		}
	} 
} 
return $arr; 
}



 
/**
 * http加密 协议使用
 * @param string $string 解密内容
 * @param string $signkey 秘钥
 * @return string 字符串类型的返回结果
 */

function EnTosignHP($string,$signkey)
{
	$nd=$string."#".$signkey;
	$string=md5($nd);
	//echo "加密前:".$nd."<br>";
	//echo $nd;
	//exit;
	return strtoupper($string);
}


/**
 * http数组拼接 协议使用
 * @param string $ar 解密内容
 * @return string 字符串类型的返回结果
 */

function TosignHttp($ar)
{	
	ksort($ar);
	//pr($ar);
	//exit;
	//$arr=ArrEncode($ar);
	//$json=json_encode($arr);
	
	
	//$json=urldecode($json);
	$httpcontent="";
	foreach($ar as $key=>$val)
	{
		if($httpcontent=="")
		{
			
			$httpcontent="#";
		}else
		{
			
			$httpcontent.="#";			
		}
		
		$httpcontent.=$ar[$key];
		
	}
	
	return $httpcontent;
	
}


/**
 * 数据解码 协议使用
 * @param string $ar 解码内容
 * @return array 数组类型的返回结果
 */
function ArrDecode($arr)
{ 
	
foreach($arr as $k=>$v){ 
if(is_array($v)){ 
	$arr[$k] =ArrDecode($v); 
	}else{ 
		if (is_numeric($k))
		{
			unset($arr[$k]);
		}else 
		{	
				$arr[$k]=urldecode($v); 
				
			
		}
	} 
} 
return $arr; 
}




?>
